#include <head.h>

// 全局的互斥信号量
pthread_mutex_t mutex;

void *Fun_pthread_1(void *arg)
{

	while (1)
	{
		// 上锁
		pthread_mutex_lock(&mutex);

		// 模拟运行
		printf("我是嘻嘻，我运行了\n");
		// 延迟一下
		sleep(2);

		// 解锁
		pthread_mutex_unlock(&mutex);
		printf("我是嘻嘻，我结束了\n");
		sleep(2);
	}
}

void *Fun_pthread_2(void *arg)
{

	while (1)
	{
		// 上锁
		pthread_mutex_lock(&mutex);

		// 模拟运行
		printf("我是haha，我运行了\n");
		// 延迟一下
		sleep(2);

		// 解锁
		pthread_mutex_unlock(&mutex);
		printf("我是haha，我结束了\n");
		sleep(2);
	}
}

int main(int argc, char const *argv[])
{

	// 创建互斥锁
	pthread_mutex_init(&mutex, NULL);

	// 线程的创建
	pthread_t tid1;
	pthread_t tid2;
	pthread_create(&tid1, NULL, Fun_pthread_1, NULL);
	pthread_create(&tid2, NULL, Fun_pthread_2, NULL);

	// 线程的回收
	pthread_join(tid1, NULL);
	pthread_join(tid2, NULL);
	return 0;

	// 回收互斥锁
	pthread_mutex_destroy(&mutex);
}